A premier destination for award-winning branding and digital design solutions. partner with our seasoned experts to elevate your brand's presence and achieve lasting impact. explore our work.
asklepios Web UI: AI Healthcare & Wellness Website Template 🩺 designed by strangehelix.bio for UI8. Connect with them on Dribbble; the global community for designers and creative professionals.
The Abstract stone wall creates a dramatic backdrop in the living room. The soft grey upholstery of the sofa
In order to migrate user defined S/4HANA object new functional module should be created. In this blog post you will learn how to do it and use your own API in Migration Cockpit object. SAP Note 2590165 – SAP S/4HANA Migration Cockpit – Creating Your own Function Modules could be good starting point in this journey. Main requirements for module are as follow: ◉ The function module must not execute the COMMIT WORK command. ◉ ABAP Dictionary structure BAPIRET2 must be used as a structure to return messages ◉ Test run flag should be implemented As example we will use database table ZSD_HISTCOND Price History Field Key Data element Data Type Length Decimals Short Description MANDT X MANDT CLNT 3 0 Client MATNR X MATNR CHAR 40 0 Material Number DATBI X KODATBI DATS 8 0 Validity end date of the condition record DATAB KODATAB DATS 8 0 Validity start date of the condition record KBETR KBETR_KOND CURR 11 2 Condition amount or percentage where no scale exists Functional Module will be an interface to Migration Cockpit. Business logic, input data validation, warning and error message collecting is implemented in Class. 1. Create Table Type ZSDHISTZPR0_TT Run SE11 t-code. Chose Data type option and Table type. Set Line Type ZSD_HIST as your database table. Save and activate. 2. Create Class Run SE80 t-code. Create Class ZCL_SD_HISTZPR_GEN Description Creation Price History Instance Generation Public Define methods Method Level Visibility Description CREATE Static Method Public Create History of pricing records SET_RETURN_MESSAGE Static Method Private Add return message Define Parameters Parameter Type Typing Method Associated Type CREATE IT_ZSDHISTCOND Importing Type ZSD_HISTCOND_TT ET_MESSAGES Exporting Type BAPIRET2_T SET_RETURN_MESSAGE IV_TYPE Importing Type BAPI_MTYPE IV_ID Importing Type SYMSGID IV_NUMBER Importing Type SYMSGNO IV_MESSAGE_V1 Importing Type SYMSGV IV_MESSAGE_V2 Importing Type SYMSGV IV_MESSAGE_V3 Importing Type SYMSGV IV_MESSAGE_V4 Importing Type SYMSGV ET_MESSAGES Importing Type BAPIRET2_T Define Text Symbols Sym Text 001 Populate mandatory data 002 Record was created Set source code METHOD create. DATA: ls_hist TYPE zsd_histcond, lt_hist TYPE TABLE OF zsd_histcond, ls_messages TYPE bapiret2. LOOP AT it_zsdhistcond ASSIGNING FIELD-SYMBOL(). IF -matnr IS INITIAL OR -datbi IS INITIAL OR -datab IS INITIAL. set_return_message( EXPORTING iv_type = 'E' iv_id = 'SD024' iv_number = 000 iv_message_v1 = TEXT-001 iv_message_v2 = space iv_message_v3 = space iv_message_v4 = space IMPORTING et_messages = et_messages ). RETURN. ENDIF. ls_hist-matnr = -matnr. ls_hist-datbi = -datbi. ls_hist-datab = -datab. ls_hist-kbetr = -kbetr. APPEND ls_hist TO lt_hist. ENDLOOP. MODIFY zsd_histcond FROM TABLE lt_hist. set_return_message( EXPORTING iv_type = 'I' iv_id = 'SD024' iv_number = 000 iv_message_v1 = TEXT-002 iv_message_v2 = space iv_message_v3 = space iv_message_v4 = space IMPORTING et_messages = et_messages ). ENDMETHOD. METHOD SET_RETURN_MESSAGE. DATA: ls_return TYPE bapiret2. ls_return-type = iv_type. ls_return-id = iv_id. ls_return-number = iv_number. ls_return-message_v1 = iv_message_v1. ls_return-message_v1 = iv_message_v1. ls_return-message_v1 = iv_message_v1. ls_return-message_v1 = iv_message_v1. APPEND ls_return TO et_messages. ENDMETHOD. 3. Create Functional Module Create Function Group ZSD_0001. Create Function Module Z_SD_HISTCOND_CREATE. Set export\import parameters Import Parameter Name Typing Associated Type Short Text IV_TEST_RUN TYPE BAPIE1GLOBAL_DATA-TESTRUN Test run IT_ZSDHISTCOND TYPE ZSD_HISTCOND_TT Price History Export ET_MESSAGES TYPE BAPIRET2_T Return messages Populate source code FUNCTION z_sd_histcond_create. *"---------------------------------------------------------------------- *"*"Локальный интерфейс: *" IMPORTING *" REFERENCE(IV_TEST_RUN) TYPE BAPIE1GLOBAL_DATA-TESTRUN *" REFERENCE(IT_ZSDHISTCOND) TYPE ZSD_HISTCOND_TT *" EXPORTING *" REFERENCE(ET_MESSAGES) TYPE BAPIRET2_T *"---------------------------------------------------------------------- zcl_sd_histcond_gen=>create( EXPORTING it_zsdhistcond = it_zsdhistcond IMPORTING et_messages = et_messages ). IF iv_test_run = 'X'. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ENDIF. ENDFUNCTION. 4. Create Migration Object Run LTMC t-code. Create new Project Name – User defined object Price History Transfer Option – Transfer Data from File Mass Transfer ID Z24 Run t-code LTMOM. Open created Project Mass Transfer ID Z24. Chose menu: Project – Create Migration Object – User-Defined – Migrate Data Using Files\Staging Tables as shown on pictures below. 4.1 Define Source structure Create source structure S_HISTCOND Price History Key Name Data Type Length Decimal Places Column Header X MATNR CHAR 40 Material X DATBI DATS 8 Valid To Date DATAB DATS 8 Valid-From Date KBETR CURR 11 2 Price 4.2 Adjust structure mapping Source structure Target Structure Access Type Mapping Type Source Cardinality Target Cardinality Data Type Path S_HISTCOND HEADER LOOP AT TABLE 1:1 Relation 1 1 Default Path S_HISTCOND R_IT_ZSDHISTCOND Mapping only 1:1 Relation 1 1 Not Applicable 4.3 Set up fields mapping Parameter Parameter Value Rule Target Field Target Structure R_IT_ZSDHISTCOND SENDERFIELD S_HISTCOND-MATNR MOVE MATNR SENDERFIELD S_HISTCOND-DATBI MOVE DATBI SENDERFIELD S_HISTCOND-DATAB MOVE DATAB SENDERFIELD S_HISTCOND-KBETR MOVE KBETR Save Object (Ctrl+S) and generate run time object. 5. Migrate data Run LTMC t-code. Chose your Project then Object. Download Template. Populate data as follow. Go through migration steps. Data is uploaded into the table. Thereby we have created our own Functional Module and corresponding Migration Cockpit object. Now we can migrate custom object data.